package com.demo.personalaccountingbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.personalaccountingbackend.dto.ApiResponse;
import com.demo.personalaccountingbackend.entity.Category;

import java.util.List;

/**
 * 类描述信息
 *
 * @author zgx
 * @version 1.0
 * @date 2025/10/15 11:46
 */

public interface CategoryService extends IService<Category> {

    /**
     * 获取所有分类（可按类型筛选）
     */
    ApiResponse getCategories(Integer type);

    /**
     * 获取分类详情
     */
    ApiResponse getCategoryDetail(Long id);

    /**
     * 添加分类
     */
    ApiResponse addCategory(Category category);

    /**
     * 更新分类
     */
    ApiResponse updateCategory(Long id, Category category);

    /**
     * 删除分类
     */
    ApiResponse deleteCategory(Long id);

    /**
     * 获取树形结构的分类列表
     */
    List<Category> getCategoryTree();

    /**
     * 根据类型获取树形结构的分类列表
     */
    List<Category> getCategoryTreeByType(Integer type);

    /**
     * 构建树形结构
     */
    List<Category> buildCategoryTree(List<Category> categories);
}